package com.youlai.boot.system.service;

import com.youlai.boot.system.model.entity.WasteType;
import com.youlai.boot.system.model.form.WasteTypeForm;
import com.youlai.boot.system.model.query.WasteTypeQuery;
import com.youlai.boot.system.model.vo.WasteTypeVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;

/**
 * 垃圾类型管理服务类
 *
 * @author youlaitech
 * @since 2025-02-22 16:33
 */
public interface WasteTypeService extends IService<WasteType> {

    /**
     *垃圾类型管理分页列表
     *
     * @return
     */
    IPage<WasteTypeVO> getWasteTypePage(WasteTypeQuery queryParams);

    /**
     * 获取垃圾类型管理表单数据
     *
     * @param id 垃圾类型管理ID
     * @return
     */
     WasteTypeForm getWasteTypeFormData(Long id);

    /**
     * 新增垃圾类型管理
     *
     * @param formData 垃圾类型管理表单对象
     * @return
     */
    boolean saveWasteType(WasteTypeForm formData);

    /**
     * 修改垃圾类型管理
     *
     * @param id   垃圾类型管理ID
     * @param formData 垃圾类型管理表单对象
     * @return
     */
    boolean updateWasteType(Long id, WasteTypeForm formData);

    /**
     * 删除垃圾类型管理
     *
     * @param ids 垃圾类型管理ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteWasteTypes(String ids);

    /**
     * 计算用户收益
     * @param weight
     * @param wasteType
     * @return
     */
    BigDecimal calculateUserRevenue(BigDecimal weight, WasteType wasteType);
    /**
     * 计算机构收益
     * @param weight
     * @param wasteType
     * @return
     */
    BigDecimal calculateOrgRevenue(BigDecimal weight, WasteType wasteType);

}
